/*--------------------------------------------------------------------------*/
/* Copyright 2024 NXP                                                       */
/*                                                                          */
/* NXP Confidential and Proprietary. This software is owned or controlled   */
/* by NXP and may only be used strictly in accordance with the applicable   */
/* license terms.  By expressly accepting such terms or by downloading,     */
/* installing, activating and/or otherwise using the software, you are      */
/* agreeing that you have read, and that you agree to comply with and are   */
/* bound by, such license terms.  If you do not agree to be bound by the    */
/* applicable license terms, then you may not retain, install, activate or  */
/* otherwise use the software.                                              */
/*--------------------------------------------------------------------------*/

#ifndef MCUXCL_CONFIG_H_
#define MCUXCL_CONFIG_H_

//commented defines for all enabled features
//#define MCUXCL_FEATURE_AEADMODES_CCM
//#define MCUXCL_FEATURE_AEADMODES_GCM
//#define MCUXCL_FEATURE_AEAD_CRYPT
//#define MCUXCL_FEATURE_AEAD_MULTIPART
//#define MCUXCL_FEATURE_AEAD_ONESHOT
//#define MCUXCL_FEATURE_AES128
//#define MCUXCL_FEATURE_AES192
//#define MCUXCL_FEATURE_AES256
//#define MCUXCL_FEATURE_BUFFER_USE_POINTER
//#define MCUXCL_FEATURE_CIPHERMODES_CBC
//#define MCUXCL_FEATURE_CIPHERMODES_CTR
//#define MCUXCL_FEATURE_CIPHERMODES_ECB
//#define MCUXCL_FEATURE_CIPHER_CRYPT
//#define MCUXCL_FEATURE_CIPHER_MULTIPART
//#define MCUXCL_FEATURE_CIPHER_ONESHOT
//#define MCUXCL_FEATURE_CSSL_DI_USE_NONE
//#define MCUXCL_FEATURE_CSSL_FP_EXCLUDE_COVERITY_PRAGMAS
//#define MCUXCL_FEATURE_CSSL_FP_INCLUDE_SECURE_COUNTER
//#define MCUXCL_FEATURE_CSSL_FP_USE_SECURE_COUNTER
//#define MCUXCL_FEATURE_CSSL_MEMORY_ENABLE_CLEAR
//#define MCUXCL_FEATURE_CSSL_MEMORY_ENABLE_COMPARE
//#define MCUXCL_FEATURE_CSSL_MEMORY_ENABLE_COPY
//#define MCUXCL_FEATURE_CSSL_MEMORY_ENABLE_SET
//#define MCUXCL_FEATURE_CSSL_SC_INCLUDE_NONE
//#define MCUXCL_FEATURE_CSSL_SC_INCLUDE_SW_LOCAL
//#define MCUXCL_FEATURE_CSSL_SC_USE_SW_LOCAL
//#define MCUXCL_FEATURE_ECC
//#define MCUXCL_FEATURE_ECC_ANSIX9P_CURVES
//#define MCUXCL_FEATURE_ECC_BRAINPOOLR1_CURVES
//#define MCUXCL_FEATURE_ECC_BRAINPOOLT1_CURVES
//#define MCUXCL_FEATURE_ECC_CURVE25519
//#define MCUXCL_FEATURE_ECC_CURVE448
//#define MCUXCL_FEATURE_ECC_ECDH
//#define MCUXCL_FEATURE_ECC_ECDSA
//#define MCUXCL_FEATURE_ECC_ED25519
//#define MCUXCL_FEATURE_ECC_EDDSA
//#define MCUXCL_FEATURE_ECC_EXTERNAL
//#define MCUXCL_FEATURE_ECC_MONTDH
//#define MCUXCL_FEATURE_ECC_MONTGOMERY
//#define MCUXCL_FEATURE_ECC_NISTPR1_CURVES
//#define MCUXCL_FEATURE_ECC_SECPK1_CURVES
//#define MCUXCL_FEATURE_ECC_SECPR1_CURVES
//#define MCUXCL_FEATURE_ECC_STRENGTH_CHECK
//#define MCUXCL_FEATURE_ECC_TWISTEDEDWARDS
//#define MCUXCL_FEATURE_ECC_WEIERECC_KEYGENERATION
//#define MCUXCL_FEATURE_ECC_WEIERSTRASS
//#define MCUXCL_FEATURE_ELS
//#define MCUXCL_FEATURE_ELS_ACCESS_PKCRAM_WORKAROUND
//#define MCUXCL_FEATURE_ELS_AEAD
//#define MCUXCL_FEATURE_ELS_API_INPUT_PARAM_CHECKS
//#define MCUXCL_FEATURE_ELS_CKDF
//#define MCUXCL_FEATURE_ELS_CMAC
//#define MCUXCL_FEATURE_ELS_ECC_ECKXCH_ODD
//#define MCUXCL_FEATURE_ELS_ECC_KEY_EXCHANGE
//#define MCUXCL_FEATURE_ELS_GET_FW_VERSION
//#define MCUXCL_FEATURE_ELS_GLITCHDETECTOR
//#define MCUXCL_FEATURE_ELS_HKDF
//#define MCUXCL_FEATURE_ELS_HMAC
//#define MCUXCL_FEATURE_ELS_HWCONFIG
//#define MCUXCL_FEATURE_ELS_HW_OUT_SLOTS
//#define MCUXCL_FEATURE_ELS_KEY_EXPORT_SW_DFA_PROTECTION
//#define MCUXCL_FEATURE_ELS_KEY_MGMT_DELETE
//#define MCUXCL_FEATURE_ELS_KEY_MGMT_EXPORT
//#define MCUXCL_FEATURE_ELS_KEY_MGMT_KEYPROV_TEST
//#define MCUXCL_FEATURE_ELS_LINK_BASE_ADDRESS
//#define MCUXCL_FEATURE_ELS_RNG
//#define MCUXCL_FEATURE_ELS_SHA_224
//#define MCUXCL_FEATURE_ELS_SHA_256
//#define MCUXCL_FEATURE_ELS_SHA_384
//#define MCUXCL_FEATURE_ELS_SHA_512
//#define MCUXCL_FEATURE_ELS_SHA_512_224
//#define MCUXCL_FEATURE_ELS_SHA_512_256
//#define MCUXCL_FEATURE_ELS_TLS
//#define MCUXCL_FEATURE_EXAMPLE_PKC_ENABLED
//#define MCUXCL_FEATURE_EXPORTED_FEATURE_HEADER
//#define MCUXCL_FEATURE_HASH
//#define MCUXCL_FEATURE_HASHMODES
//#define MCUXCL_FEATURE_HASH_COMPUTE
//#define MCUXCL_FEATURE_HASH_C_SHA_1
//#define MCUXCL_FEATURE_HASH_ELS
//#define MCUXCL_FEATURE_HASH_MULTIPART
//#define MCUXCL_FEATURE_HASH_ONESHOT
//#define MCUXCL_FEATURE_HMAC_ELS
//#define MCUXCL_FEATURE_HMAC_SW
//#define MCUXCL_FEATURE_HW_CACHE_ENABLED
//#define MCUXCL_FEATURE_HW_ELS
//#define MCUXCL_FEATURE_HW_PKC
//#define MCUXCL_FEATURE_HW_ROPUF
//#define MCUXCL_FEATURE_HW_TRNG
//#define MCUXCL_FEATURE_INTERNAL_INCLUDES_FLAG
//#define MCUXCL_FEATURE_MAC
//#define MCUXCL_FEATURE_MACMODES_CBCMAC
//#define MCUXCL_FEATURE_MACMODES_CMAC
//#define MCUXCL_FEATURE_MAC_COMPUTE
//#define MCUXCL_FEATURE_MAC_MULTIPART
//#define MCUXCL_FEATURE_MAC_ONESHOT
//#define MCUXCL_FEATURE_PADDING_ISO9797_1_M1
//#define MCUXCL_FEATURE_PADDING_ISO9797_1_M2
//#define MCUXCL_FEATURE_PADDING_PKCS7
//#define MCUXCL_FEATURE_PKC_CRR_HEADER
//#define MCUXCL_FEATURE_PKC_PKCRAM_NO_UNALIGNED_ACCESS
//#define MCUXCL_FEATURE_PKC_RAM_4KB
//#define MCUXCL_FEATURE_PLATFORM_RW61X
//#define MCUXCL_FEATURE_PRNG
//#define MCUXCL_FEATURE_PRNG_ELS
//#define MCUXCL_FEATURE_RANDOM
//#define MCUXCL_FEATURE_RANDOMMODES_CTRDRBG
//#define MCUXCL_FEATURE_RANDOMMODES_CTRDRBG_ELS
//#define MCUXCL_FEATURE_RANDOMMODES_DERIVATION_FUNCTION
//#define MCUXCL_FEATURE_RANDOMMODES_ELSMODE
//#define MCUXCL_FEATURE_RANDOMMODES_NORMALMODE
//#define MCUXCL_FEATURE_RANDOMMODES_PATCHMODE
//#define MCUXCL_FEATURE_RANDOMMODES_PR_DISABLED
//#define MCUXCL_FEATURE_RANDOMMODES_SECSTRENGTH_256
//#define MCUXCL_FEATURE_RANDOMMODES_TESTMODE
//#define MCUXCL_FEATURE_RSA_KEYGENERATION
//#define MCUXCL_FEATURE_RSA_NOEMSA
//#define MCUXCL_FEATURE_RSA_RSASSA_PKCS1v15
//#define MCUXCL_FEATURE_RSA_RSASSA_PSS
//#define MCUXCL_FEATURE_RSA_SIGN
//#define MCUXCL_FEATURE_RSA_STRENGTH_CHECK
//#define MCUXCL_FEATURE_RSA_VERIFY
//#define MCUXCL_FEATURE_SESSION_ENTRYEXIT_REGULARRETURN
//#define MCUXCL_FEATURE_SESSION_HAS_RANDOM
//#define MCUXCL_FEATURE_SESSION_HAS_RTF
//#define MCUXCL_FEATURE_SOURCE_DELIVERY
//#define MCUXCL_FEATURE_TRNG_CRR_HEADER
//#define MCUXCL_FEATURE_TRNG_SA_TRNG
//#define MCUXCL_FEATURE_TRNG_SA_TRNG_256

//defines for exported features
#define MCUXCL_FEATURE_ECC_STRENGTH_CHECK 1
#define MCUXCL_FEATURE_ELS_ACCESS_PKCRAM_WORKAROUND 1
#define MCUXCL_FEATURE_ELS_ECC_ECKXCH_ODD 1
#define MCUXCL_FEATURE_ELS_GET_FW_VERSION 1
#define MCUXCL_FEATURE_ELS_GLITCHDETECTOR 1
#define MCUXCL_FEATURE_ELS_HWCONFIG 1
#define MCUXCL_FEATURE_ELS_KEY_MGMT_KEYPROV_TEST 1
#define MCUXCL_FEATURE_HW_ROPUF 1
#define MCUXCL_FEATURE_HW_TRNG 1
#define MCUXCL_FEATURE_PKC_PKCRAM_NO_UNALIGNED_ACCESS 1
#define MCUXCL_FEATURE_PLATFORM_RW61X 1
#define MCUXCL_FEATURE_RANDOMMODES_CTRDRBG 1
#define MCUXCL_FEATURE_RANDOMMODES_CTRDRBG_ELS 1
#define MCUXCL_FEATURE_RANDOMMODES_DERIVATION_FUNCTION 1
#define MCUXCL_FEATURE_RANDOMMODES_NORMALMODE 1
#define MCUXCL_FEATURE_RANDOMMODES_PR_DISABLED 1
#define MCUXCL_FEATURE_RANDOMMODES_SECSTRENGTH_256 1
#define MCUXCL_FEATURE_RANDOMMODES_TESTMODE 1
#define MCUXCL_FEATURE_RSA_STRENGTH_CHECK 1
#define MCUXCL_FEATURE_TRNG_SA_TRNG 1
#define MCUXCL_FEATURE_TRNG_SA_TRNG_256 1

#endif
